package com.amsp.oa.oademo.service;

import com.amsp.oa.oademo.entity.IncomeCertificate;
import com.amsp.oa.oademo.vo.IncomeCertificateVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 收入证明Service接口
 */
public interface IncomeCertificateService extends IService<IncomeCertificate> {

    /**
     * 获取收入证明列表（分页）
     * 
     * @param page       分页参数
     * @param name       员工姓名（可选）
     * @param department 部门（可选）
     * @return 分页结果
     */
    Page<IncomeCertificateVO> getList(Page<IncomeCertificate> page, String name, String department);

    /**
     * 获取收入证明详情
     * 
     * @param id 收入证明ID
     * @return 收入证明详情
     */
    IncomeCertificateVO getDetail(Long id);

    /**
     * 保存或更新收入证明
     * 
     * @param incomeCertificateVO 收入证明VO
     * @return 是否成功
     */
    boolean saveOrUpdate(IncomeCertificateVO incomeCertificateVO);

    /**
     * 批量保存收入证明
     * 
     * @param incomeCertificateVOList 收入证明VO列表
     * @return 是否成功
     */
    boolean batchSave(List<IncomeCertificateVO> incomeCertificateVOList);

    /**
     * 删除收入证明
     * 
     * @param id 收入证明ID
     * @return 是否成功
     */
    boolean delete(Long id);

    /**
     * 批量删除收入证明
     * 
     * @param ids 收入证明ID列表
     * @return 是否成功
     */
    boolean batchDelete(List<Long> ids);
}